
/**
 * @description: 列表组件数组处理 mixin, 所有的数据处理逻辑在这
 */
//调试数据
import {listDemoRes} from './data.js';

export default {
    props: {
        // 持仓数据模型，包含字段 keys、rows、style、subSystemNo、functionId, 支持异常数据
        // listRes: {
        //   type: Object,
        //   default() {
        //     return {};
        //   }
        // },
    },
    data () {
      return {
        listRes: listDemoRes, // 调试数据
        showKeys: [], // 处理后展示的 keys
        shortNameArray: [], // 处理后展示的 names
        columStyle: [], // 列表单行或者双行的样式数组[2,2,2,2],不存在则按每列2，开始往后排列完所有的 key
      }
    },
    computed: {
      // 列表数据(去除表头)
      itemDatas() {
        if (this.listRes && this.listRes.rows && this.listRes.rows.length > 0) {
            this.processShowInfo();
            console.log('list total number', this.listRes.rows.length - 2);
            
            return this.listRes.rows.slice(2);
          }
          return [];
      }
    },

  
    methods: {
      
      /**
       * @description: 处理展示的 keys 和 names
       */
      processShowInfo() {
        if(!this.listRes || !this.listRes.rows || this.listRes.rows.length <= 0) {
          this.showKeys = [];
          this.shortNameArray = [];
          return;
        }

        const keys = this.listRes.keys; // 假设这是一个包含键名的数组
        const shortNameModel = this.listRes.rows[1]; // 假设这是一个对象，包含键值对
        
        // 初始化两个数组，用于存储结果
        const nonEmptyKeys = [];
        const nonEmptyValues = [];
        
        // 遍历 keys 数组
        keys.forEach(key => {
          const value = shortNameModel[key]; // 获取对应的值
          if (value !== null && value !== undefined && value !== '') { // 检查值是否不为空
            nonEmptyKeys.push(key); // 将键添加到 nonEmptyKeys 数组
            nonEmptyValues.push(value); // 将值添加到 nonEmptyValues 数组
          }
        });
        this.showKeys = nonEmptyKeys;
        this.shortNameArray = nonEmptyValues;

        // 处理样式数组
        const count = Math.floor(this.shortNameArray.length / 2);
        let styleArray = this.listRes.style;
        if(!styleArray || styleArray.length <= 0) {
          styleArray = Array.from({ length: count }, () => '2');
          if (this.shortNameArray.length % 2 > 0) {
            styleArray.push('1');
          }
        }
        this.columStyle = styleArray;        
      }
    },
    beforeDestroy () {},
    destroyed () {}
  }